package CapaDatos.listas;

import CapaDatos.Cargo;
import java.util.TreeSet;
import java.util.Comparator;
import java.util.Iterator;

public class ListaCargos
{
    public TreeSet <Cargo> cargos;
    private Comparator comparator;

    public ListaCargos()
    {
        comparator = new CompararCargos();
        cargos = new TreeSet(comparator);
    }

    public boolean agregar (Cargo cargo) {
        return cargos.add(cargo);
    }

    public boolean modificar (Cargo cargo) {
        Cargo auxiliar = buscar (cargo.getNombre());

        if (auxiliar == null)
            return false;

        if (!eliminar (auxiliar.getNombre()))
            return false;

        return agregar(cargo);
    }

    public Cargo buscar (String nombre) {
        boolean encontrado = false;
        Cargo auxiliar = null;

        Iterator iterator = cargos.iterator();

        while (!encontrado && iterator.hasNext())
        {
            auxiliar = (Cargo) iterator.next();

            if (nombre.equals(auxiliar.getNombre()))
                return auxiliar;
        }

        return null;
    }

    public boolean eliminar (String nombre) {
        Cargo auxiliar = buscar (nombre);
        return cargos.remove(auxiliar);
    }

    public Cargo[] array() {
        return cargos.toArray(new Cargo[0]);
    }
}
